#pragma once

#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
#include<assert.h>

typedef char ElemType;
typedef struct ListNode
{
	ElemType value;
	struct ListNode* next;
}ListNode;

void InitList(ListNode** phead);
bool ListInsert(ListNode* phead, int i, ElemType value);
void DispList(ListNode* phead);
int ListLength(ListNode* phead);
bool ListEmpty(ListNode* phead);
bool GetElem(ListNode* phead, int i, ElemType* value);
int LocateElem(ListNode* phead, ElemType value);
bool ListDelete(ListNode* phead, int i);
void DestroyList(ListNode* phead);